package br.composer.util;

import java.io.*;
import java.util.StringTokenizer;


/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class popReturn {

        /**
         * Mtodo que recebe como parametro um endereo IP e retorna um array de String (0-nomepop, 1-Nome Inst).
         *
         * @param String endereco - Endereo IP de entrada
         * @return Vetor de String contendo: 
         *  0- Faixa de endereamento
         *  1- Instituio
         *  2- Sigla
         *  3- PoP
         *  4- Mscara
         *  5-
         *
         */

        public popReturn(){
                //File aFile = new File("lista_pops.txt");

                //String local = System.getProperty("user.dir");/////////////////////////
                //System.out.println("Diretorio Local: "+local);/////////////////////////
        }


    public String[] retornaPop(String endereco){
        String[] retorno = new String[5];

        try {
        		//FIXME mudar para camninho relativo
        		BufferedReader in = new BufferedReader(new FileReader("/home/raphael/workspace/Composer/File/lista_pops.txt"));
        		
                //Abre o arquivo
                //Variveis de apoio
                String str;
                String aux = new String();
                String aux1 = new String(" 0");
                String aux2 = new String(" 0");
                String aux3 = new String(" 0");
                String aux4 = new String(" 0");


                int tokenCount,idx = 0;
                String[] temp = new String[300];
                String separador = new String("|");
                String separador2 = new String(".");

                String a = new String();
                String b = new String();
                String c = new String();
                String d = new String();

                String ip1 = new String();
                String ip2 = new String();
                String ip3 = new String();
                String ip4 = new String();

                String nome = new String();
                String sigla = new String();
                String pop = new String();
                String masc = new String();

                String z = new String();


                //Dividindo o endereo ip em tokens e atribuindo para comparar...

                StringTokenizer ip = new StringTokenizer(endereco,separador2);
                a = ip.nextToken();
                b = ip.nextToken();
                c = ip.nextToken();
                d = ip.nextToken();

                boolean achoupop=false;
                //System.out.println("Ip: "+a+"|"+b+"|"+c+"|"+d);

                //Enquanto no estiver no fim do arquivo...
                while (((str = in.readLine()) != null) ) {
//|| (achoupop==true)
                        StringTokenizer st = new StringTokenizer(str, separador);

                           tokenCount = st.countTokens ();
                               // while (st.hasMoreTokens()){

                              if (st.hasMoreTokens()){
                                  aux = st.nextToken();
                                  if ( st.hasMoreTokens()){
                                      aux1 = st.nextToken();
                                      if (st.hasMoreTokens()) {
                                          aux2 = st.nextToken();
                                          if (st.hasMoreTokens()) {
                                              aux3 = st.nextToken();
                                              if (st.hasMoreTokens()) {
                                                  aux4 = st.nextToken();
                                              }
                                          }
                                      }
                                  }
                              }

                                    StringTokenizer stIp = new StringTokenizer(
                                            aux, separador2);

                                    //Para encontrar a faixa...
                                    while (stIp.hasMoreTokens()) {
                                        //Divide o pop em 4 tokens..
                                        ip1 = stIp.nextToken();
                                        ip2 = stIp.nextToken();
                                        ip3 = stIp.nextToken();
                                        ip4 = stIp.nextToken();
                                        //System.out.println("Ip: "+ip1+"|"+ip2+"|"+ip3+"|"+ip4);

                                        //Compara com 'endereo'
                                        if (a.equals(ip1)) {
                                            if (b.equals(ip2)) {
                                                z = "0";
                                                if ((c.equals(ip3)) ||
                                                        (ip3.equals(z))) { // <= Estava com c.equals(z)
                                                    //System.out.println("pop encontrado: " + aux);
                                                    achoupop = true;
                                                    retorno[0] = aux;
                                                    retorno[1] = aux1;
                                                    retorno[2] = aux2;
                                                    retorno[3] = aux3;
                                                    retorno[4] = aux4;
                                                   

                                                }
                                            }
                                        }

                                    }

                                idx=0;


                }
                in.close();
        }catch (IOException e) {
          System.out.println("Error in getLines "+e);
      }

            return retorno;
        }

    /*public static void main(String[] args) {
        popReturn rt = new popReturn();

        String xis[] = new String[5];
        xis = rt.retornaPop("200.128.80.175");//ba
        //xis = rt.retornaPop("150.162.124.36");//sc
        System.out.println("Endereo ip se encontra na faixa: "+xis[0]+" Instituio: "+xis[1]+" Sigla: "+xis[2]+" PoP: "+xis[3]+" Mascara: "+xis[4]);


    }
*/

}

